NAME xpilot - XPilot/UX Multiplayer gravity war game client SYNOPSIS xpilot [-help] [-version] [-name nickname] [-team team- number] [-join] [-list] [-shutdown [message]] [-display string] [-port port-number] [configuration-options] [server-host ...] OVERVIEW XPilot is a multiplayer game which looks a bit like Thrust for the Commodore 64. Thrust has some similarities with Atari's coin-up games Gravitar and Asteriods (not a mis- spelling) - they were the originals. Several clones have appeared for various computers, among others Gravity Force for the Commodore Amiga. The main objective of the game varies as you can choose different game modes, although the only modes supported as of today are combat (optionally with teams and/or limited lives) and race. The former mode focuses more strongly on shooting each other down, while the latter is more a piloting test than anything else. To start playing, you need to connect to a server by using a client program called xpilot. If there are no servers running, you will have to start one of your own (see man- page xpilots()). Options -help Prints some help, including commandline options. -version Prints the current version. -name player-name Lets you use an alternative name during the play (may be handy :). If this option isn't specified, and you haven't set the X resource name, you will be known by your login name. -team team-number Joins team number team-number. See below for notes about team play. When the server is not configured for team mode, this option has no effect. 1 XPILOT -help Prints a small usage message. -version Prints version information. -join Automatically joins the first server you get response from. -list Queries status information from all servers found. -shutdown [message] Sends a shutdown to the server, the message part is optional. -name nick Specifies your nick name. -team number Specifies your wanted team number. -display display-string Specifies which X server to contact. -port number Specifies the port number to use when con- tacting a server. configuration-options All the X resource values can be configured seperately from the command line. For example to change the ecm key to just `z' use; -keyEcm z server-host Tries to connect to server at host server- host. The default is to send a broadcast query on your attached network. PROMPT COMMANDS When you startup xpilot without the -join option, you will get a prompt asking you for directions. You may type h or ? to list the available commands. These are quite obvi- ous and deal with communication to the current server only. You may enter the game by pressing CR (Return/Enter). If you are the owner of the server you will have a few extra options. See xpilots(). THE GRAPHICAL USER INTERFACE When you enter a game you will hopefully be presented a window. This window is divided into three major areas: Radar (Top left) This area shows the map the server you are playing on is using as 2 XPILOT well as the position of your fellow play- ers (if they aren't cloaked). In race mode the radar also outputs the position of the control posts. Players are shown as small rectangles The player you are currently locked onto is shown as a flashing rectangle. The server can optionally display mis- siles, mines and/or bombs (moving mines) on this radar, and will display them using different symbols; missiles are quick flashing small dots, mines and bombs slow flashing small dots. If nuclear mines or missiles are launched the radar can detect the high energy radation emiited and will show these types of weapons on the radar as alter- nating small and large rectangles. The radar always has a limited range for these objects, due to their small size. The maximum range depends on how much fuel you are carrying. Rating list (Bottom left) This area shows the list of players (sorted with respect to their rating, or `score') currently logged on the server. The player with the highest / ratio - that is, the most `deadly' player - is under- lined with a stipled line. First on each line, you might find a let- ter which gives you some information about the status of the player: R means the player is a robot, T means the player is not a player but a detached tank, D means player is dead (only possible in limited lives mode), P means the player is paused and W means the player is wait- ing to join the game after login (in lim- ited lives mode). Depending on the current game mode, you will also find information about which teams each player belong to and how many lives each player has left. Game area (Right) This is where the action is. Most notably you will see your fighter in the middle of the screen, hopefully you won't see any shots or explosions yet! 3 XPILOT You may also see some strange blue draw- ings surrounding your fighter - this is the HUD (Head Up Display) which greatly simplifies and compresses the information you need to know. Currently, the HUD displays the following information: Bonus items You may notice some symbols and num- bers on the left side of the HUD, these indicate which, and what quan- tity, of extra equipment you have. This list can be turned off using the `o' key, then only items which you gain or loose will be briefly shown on the HUD. Pressing `o' again will constantly show owned items. Fuel A fuel meter will appear on the right side of the HUD when you are getting low on fuel, it will start flashing when your fuel level gets dangerously low. The fuel is numer- ically displayed on the bottom right corner of the HUD. Lock The name of the player you have cur- rently locked on is shown on the top of the HUD. The distance and bear- ing to that same player is visual- ized by a dot where placement of the dot gives the direction, and the size of the dot gives the distance. The dot will be filled if the player is not on the same team as you. The distance to the player also numeri- cally displayed on the top right corner of the HUD, it is measured in `blocks'. Velocity (Optional) The position of the HUD changes with the current velocity. The distance from the center of your screen is proportional to your velocity. Moving to the top moves the HUD to the bottom. In addition to the moving HUD, you can display a line from the center of the HUD to the center of your ship. Both indicators can be combined or used exclusivly (see discussion 4 XPILOT about Xresources below). Score messages Relevant score information is shown below the HUD, as well as on the game field. Time left The amount of time the game will last if the the server was started with a time limit. This is dis- played in the upper left corner of your HUD. Between the radar and the Rating list there are three push buttons: Quit Exits the game and the program. About Pressing the About button will popup a three page help window. It explains in short the functionality of all the items you may encounter together with a graphical depiction of them. Menu The Menu button pops up a pull down menu with the following buttons: Keys Will popup the Keys window, which contains a list of all the X keysyms that have one or more xpilot actions bound to them. Config Changes the Rating list into a window with a list of most of the options. The options can be changed interactively. Pushing the Save configuration button will save the options and the key bindings to the .xpilotrc file in your home directory. Score Displays the players and their scores in the Rating list win- dow. Player Lists the players with their login name and their host address in the Rating list win- dow. MOTD Displays the Message Of The Day 5 XPILOT if the server has one avail- able. GAME CONCEPTS The game objective varies as the server (xpilots()) is very configurable. However, below you will find short descriptions of some of the main concepts of the game. Gravity All objects in the game are affected by gravity - that is, they will accelerate in the direction the gravity is strongest. The strength and direction of the gravity is user configurable (see xpilots()), and can even be set to 0. Some objects affect the gravity in a limited area, these are called gravs and they exist in miscellaneous types (attractive, repulsive, clockwise, anti-clockwise). Gravs are shown as red circles with some symbol inside which is different for each type of grav. (For more information on how the affect the gravity, see xpilots().) Wormholes Wormholes are shown as red rotating circles. They will `teleport' you to another place in the world. Generally, when you go through a wormhole, you'll come out at the nearest wormhole in the direction you were travelling. Some wormholes are enter-only and some are exit-only. The exit-only ones are invisible. Passing through a wormhole will make you visible for a while if you were cloaked. Fuel You will also have to worry about your fuel level as most equipment use fuel/energy and some even work better the more fuel you have. You may gain fuel by picking up special `fuel cans' (see bonus items section) or refueling at a refuel station. Refuel stations may be found in blocks in the world, they differ from standard background blocks in that they have a red/black F in them, and they are partly or completely filled with red. The amount of red determines how much fuel the station has at available for you. To refuel, you must hit the keyRefuel key (see controls section). Fuel takes up mass and will also determine how big the explosion will be when (sorry, `if' :) you meet your 6 XPILOT destiny. Combat There are two different and mutually exclusive modes which have greatly different objectives: combat mode and race mode. The most extensive is the combat mode, which also happens to be the default. Here your main objective is to get as high a rating as possible by `blasting away' on enemy fighters (human or robot controlled) and cannons. All will naturally fire back at you, so you will also need some nifty piloting skills and/or some heavy equipment to really enjoy living. Extra weapons are explained in the bonus items section. Race In race mode, your objective is to fly as fast as you can through a specified route. This is done by passing check- points in a specified order. The finish is reached after three laps. The next checkpoint is always visible on the radar. Team play Team play is useful in combination with combat mode. It is different from straight combat mode in that players on your own team are not considered enemies. There are some additional objectives too. You can gain points if the map you are using have targets or treasures. The main difference is that you get points by blowing up an enemy's target using shots or mines. A shot will only damage a target and if the target is com- pletely damaged then the next shot will blow it up. A mine will immediately destroy a target. Two missile hits will also destroy a target. Enemy treasures have to be stolen from the enemies and dropped on your own treasure. You pick up a treasure by using keyConnector when flying nearby the enemies trea- sure. This will attach the treasure to your ship with a strong rubber band. Now you have to move your ship away from the treasure while holding the keyConnector down. When you reach a certain distance the rubber band will be drawn in a sollied line. This means that the treasure is attached to your ship. It is possible (in emergency situ- ations :) to detach the enemy treasure by pressing key- DropBall, but this will of course not gain you or your 7 XPILOT team any points. Certain maps may configure targets as passable by team members, in which case they can act as wall shields for team bases. Shields You may or may not have shields at your disposal, depend- ing on the server options specified. If you have, they are activacted with the keyShield key (see controls sec- tion). Generally collisions with other objects (except for debris and sparks) are lethal, but when you are hit by something with your shields up then it will only cost you some fuel/energy. If you didn't have enough fuel then the collision will be lethal again. Having your shields up costs fuel. Bonus items During the game you might encounter blue triangles with red symbols on - these are special bonus items which will make your life easier. As of today, these items include: Fuel can More fuel/energy. Cloaking device Makes you invisible for other players, both on radar and on the screen. How- ever, when you are hit by a shot or mis- sile or bounce with another player then you will be temporarily visible again. Sensors Enables you to see cloakers to a limited extent. Having more sensors improves this. Rear cannon Extra rear cannon. Front cannons 2 extra front cannons. Afterburner Your main engine becomes more powerful and uses your fuel more efficiently. Rockets Pack of rockets. These may be used as smart missiles, heat seaking missiles, or just plain dumb torpedos. Usually these explode on impact with a small debris explosion. However, if enabled, nuclear and/or cluster variants of each may be possible. See the description of 8 XPILOT keyToggleNuclear, keyToggleCluster and keyToggleModifier. Mine Pack of mines. Can be dropped as either moving mine (bombing) or stationary mine (mining). Usually these will explode when someone else comes within a few blocks, causing a large debris explosion. However, if enabled, nuclear and/or clus- ter variants of each may be possible. Mines have a little intelligence and will not explode for the player (or team mem- bers) who dropped them. However, the targetting of mines can be effected by ECMs (unless the server option ecmsRepro- gramMines is false). If you get close enough to a mine, you will be able to sense who the mine is currently pro- grammed by. Mines dropped by different players have a different external appear- ance -- mines dropped by you or your team show up hollow. Reprogramming does not change the appearance of a mine, so be careful because a hollow mine may not be safe. See the description of keyTog- gleNuclear, keyToggleCluster, and keyTog- gleModifier. Tank Additional fuel tank (perhaps with some spare fuel). As you pick up more tanks, your weight increases and you'll have to compensate by picking up afterburners. You can change which tank is the `active tank', that is the one that fuel is drained from (if this tank is empty, fuel is drained from all tanks). Refueling is quicker with more tanks. To ease filling several tanks in paral- lel, all the tanks drain into their left neighbours (0<-1<-...<-8); except your active tank, which is watertight (it seems a bit complicated at first, but trust me, you'll get it eventually :-). Tanks don't drain if they reach a certain minimum level (unless of course, you use it as the active tank). When you detach a tank it is the active one that is detached, unless the active tank happens to be your main tank, in which the tank with the highest number is used. The detached tank will have the shape of a ship and will carry your name, 9 XPILOT it will immediately start thrusting (as long as fuel permits) and will fool all heat-seekers to follow it. ECM Electronic Counter Measures. ECM allows you to confuse and re-target smart mis- siles within a certain range of your ship. When missiles are zapped by ECM, they will become confused for a while and then have a high probability of going after the player who you were locked onto when you used the ECM. The ECM will also cause within a certain range to either explode or be more likely be temporarily be blinded such that they do not explode if you go near them. The closest mine within ECM range may be reprogrammed to be safe for you and your team members. If another ship is within range of the ECM, all it's sensors will freeze for a while and if the ship was cloaked, it will become visible for a while. The ECM is activated by pressing the keyECM key. Transporter Enables you to steal equipment and energy/fuel from the closest fighter, provided it is within the transporters range. You activate the transporter by pressing the keyTransporter key. Laser Gives you a laser weapon with limited range. Having more of these increases the range and the repeat rate of the laser subsystem. Emergency Thrust Gives you a limited amount of super thrusters, equivalent to a full comple- ment of afterburners. With a light ship this is equivalent to hitting hyperspace or warp factor 9.99. Useful for stopping quickly or running away fast from a deadly encounter. The extra thrust capa- bility is toggled on and off by a seper- ate key and can thus be saved, the amount of time remaining is shown by a status bar below the HUD. Autopilot Gives you a hover capability. When engaged an `Autopilot' light will flash above the HUD. When engaged the autopi- lot computer will bring the ship to a hover by the quickest (perhaps not safest) method possible. It will then 10 XPILOT leave you in a hover, unless in a strong gravity field where your engines cannot cope. Useful for hovering next to a refuel depot. Tractor Beam Not to be confused with a transporter, this enables you to push or pull the ship you are currently locked onto. The force is mutual, and thus if your ship is lighter than your target you will move more towards him than him towards you. Best used with heavy ships to pull then push annoying players into walls. Emergency Shield Gives you a limited amount of extra shield power, which prevents any fuel loss from shots, debri, player and wall collisions, missiles, mines, etc. While in use, the ship can smash into walls at any speed and angle without fear of being killed. The extra shield capability is toggled on and off by a separate key and can thus be saved, with the remaining amount of extra shield power being saved for later use. Once toggled on, the extra shield power will take effect and be used only while the normal shields are up. Best used when confronted with clus- ter mines and missles or deadly cannons. CONTROLS The game understands quite some keys, but not all of them are equally important. The following keys are more or less sorted by importance. The name of the keys are also the Xresources you use to redefine them, and the words inside the curly braces {} are their default bindings. See Xresources section below. Primary keys The primary keys are: keyTurnLeft {a} Turn left (anti-clockwise). keyTurnRight {s} Turn right (clockwise). keyThrust {right Shift or left Shift} Thrust me. 11 XPILOT keyFireShot {return or linefeed} Fire normal shot. keyShield {space or Caps Lock} Raise shield. Must be held down for continuous use. keyRefuel {f or left Ctrl or right Ctrl} Try to connect to nearest fuel station. Must be held down during refueling. keyRepair {f} Repair a target. Secondary keys The following commands are not always available, some require bonus items to have any functionality at all. keySelfDestruct {q} Self destruct. At last we managed to include a timer, got rid of all those nasty I'd-rather-die-by-my-own-hands- than-let-you-kill-me-and-get-all- the- points pilots. keyIdMode {u} Toggle the ID mode. Instead of the score list it will display the list of players with their real names and com- puter addresses. keyCloak {BackSpace or Delete} Enable/disable cloaking device if available. You will be invisible on both radar and on screen, but beware - the device is not foolproof, it is not cheap on your fuel and the only thing becoming invisible is your ship, i.e. the exhaust-flames will still be visi- ble. keySwapSettings {Escape} Toggle between two different settings. You'll probably want more power and a larger turn rate in combat than when you're doing some critical maneuvering. keyDropMine {Tab} Drop a proximity mine. The mine will detonate after a certain amount of time (quite large actually) or when a foe comes too near. 12 XPILOT keyDetachMine {bracketright} Drop a moving mine - that is, a bomb. keyDetonateMines {equal} Detonate the mine you have dropped or thrown, which is closest to you. keyEcm {bracketleft} Fire an ECM pulse. keyChangeHome {Home or h} Change home base. You will need to be landed on the base of your choice. (The Home key is located just right of the Return key on most HP-keyboards.) These keys are convenient for HP key- boards, also somewhat adapted to SUN keyboards. keyTankNext {e} If you have additional tanks, the cur- rent tank will be the next tank. keyTankPrev {w} If you have additional tanks, the cur- rent tank will be the previous tank. keyTankDetach {r} Detach the current tank (or the last additional tank). Heat-seeking mis- siles will hopefully follow this tank. keyPause {p or Pause} Park or paused hover mode - you can only park while you're landed on your own home base, and when you park, you cannot rejoin the game until the P has stopped blinking (to prevent users from using this option to run away from a battle). If you are not near your base and you are travelling very slowly the ship will be brought to a standstill on autopilot and cannot be unpaused until the `Autopilot' light stops blinking. keyFireMissile {backslash} Fire smart missile if available. The missile will home onto the player that you have currently locked on. You must have a clear lock on a player for this to work. Requires lock. keyFireHeat {semicolon} Fire a thrust controlled missile. Works 13 XPILOT like a smart missle, but is faster and ECM isn't able to confuse it. Needs the thrust for navigating. keyFireTorpedo {quoteright} Fire a missile without flight control. It runs very fast in shot direction. keyFireLaser {slash} Fires a laser weapon in the direction you are pointing. Lasers have limited range and use a lot of fuel, but they are instantaneous and therefore much more deadly than normal shots. The precise electronics of lasers can be irretrivially damaged by the high energy interference generated by enemy ECMs. keyToggleNuclear {n} Pressing this key will toggle through the following indicators on your HUD (bottom left), only if nuclear weapons are allowed; N All missiles or mines launched from now are limited nuclear weapons. FN All missiles or mines launched from now are full (or fusion) nuclear weapons. Pressing the key again clears the nuclear weapons mode. You must have eight or more missiles, or four or more mines to launch a nuclear missile or mine, and perhaps enough fuel as well. If you do not a message will be displayed at the bottom of the game area explaining why and the weapon will not be fired. Firing a full (or fusion) nuclear weapon completely depletes your stock of that weapon, limited nuclear weapons will deplete your stock by eight mis- siles or four mines. A nuclear missile or mine fired will have a mass and explosive power equal and usually greater than the total num- ber that were used. Nuclear torpedos 14 XPILOT are very fast, and all nuclear weapons explode violently (this may freeze the server momentarily). After firing a one off nuclear weapon, the `n' indica- tor is cleared. keyToggleCluster {c} Pressing this key will toggle the following indicator on your HUD (bottom left), only if cluster weapons are allowed; C All missiles or mines launched are cluster weapons. Cluster weapons explode differ- ently from normal weapons. The explode with a slower moving shower of killing shots and not debris, which may kill or deplete shields just like a normal shot fired by your self. Thus, since cluster debris is deadly to your- self, you should be careful when firing such a weapon. After fir- ing a one off cluster weapon, the `c' indicator is cleared. A cluster weapon will also use an almost equivalent amount of fuel as if you had fired the shots using your cannon, and thus large cluster explosions will use large amounts of fuel. If you do not have enough fuel a message saying so will be displayed at the bottom of the game area and the weapon will not be launched. keyToggleImplosion {i} Pressing this key will toggle the following indicator on your HUD (bottom left), only if modifiers are allowed; I All mine and missile explosions will be implo- sions instead. keyToggleVelocity {v} Pressing this key will toggle through V1 through V3 and to no modifier in turn. It 15 XPILOT affects the speed of nuclear and/or cluster explosions, higher modi- fier numbers produce lower explosion veloci- ties, and thus for the most effective nuclear cluster explosion a V2 or V3 modifier should be used. keyToggleMini {x} Pressing this key will toggle through X2 through X4 and then no modifier in turn. The number shows how many miniture mines or mis- siles will be fired for every key press. The sum total damage and cost of using miniture weapon is equivalent to a normal weapon of that type. keyToggleSpread {z} Pressing this key will toggle through Z1 through Z3 and then no modifier. The higher the number the closer the spread of fire for minature weapons, it also affects the spread of wide and rear shots, successively narrowing the stream of bullets such that V3 is a single beam of shots. keyTogglePower {b} Pressing this key will toggle through B1 through B3 and then no modifier. The higher the number the less pow- erful a tractor beam is used, mainly for con- serving energy or fine adjustment in pulling somebody around. The power setting also affects the engine to 16 XPILOT warhead ratio in mis- siles, a higher setting will cause each missile to have more powerful engines, and thus be much quicker and more maneaverable, but at the cost of a drastically reduced damage capabil- ity. However when cou- pled with other modi- fiers this can cause severe psychological advantages, consider the effect of trying to out- run four minuture full cluster powered up nuclear smart missiles. keyClearModifiers {k} Clears all current modi- fiers in effect. keyLoadModifiers1 {1} Loads the modifiers stored in bank 1, as set by the modifierBank1 resource. keyLoadModifiers2 {2} Loads the modifiers stored in bank 2, as set by the modifierBank2 resource. keyLoadModifiers3 {3} Loads the modifiers stored in bank 3, as set by the modifierBank3 resource. keyLoadModifiers4 {4} Loads the modifiers stored in bank 4, as set by the modifierBank4 resource. keyToggleAutoPilot {h} This toggles the autopi- lot feature. You need atleast one Autopilot item before this will work. 17 XPILOT keyToggleEmergencyThrust {j} This toggles the emer- gency thrust item. You need at least one emer- gency thrust item, on first turning this on the item is used up and ten seconds or so of emergency thrust is placed at your disposal. The time is only used up as you thrust, and hit- ting this key will return you back to nor- mal thrust while con- serving the remaining boosted thrust. If you posses both Autopilot and Emergency Thrust items, pressing the Meta or Alt keys will give the equivalent of emer- gency brakes. keyToggleEmergencyShield {g} This toggles the emer- gency shield item. You need at least one emer- gency shield item. When first turning on, this item is used up and ten seconds or so of emer- gency shield power is placed at your disposal. The time is only used up as you use your regular shields, and hitting this key again will return you back to nor- mal shield power while conserving the remaining emergency shield power. keyTractorBeam {comma} This will engage any tractor beam items on the player who you hold a lock on, it causes a mutual attractive force between you and them, causing both players to move towards each other. 18 XPILOT keyPressorBeam {period} This will engage any tractor beam items on the player who you hold a lock on, it causes a mutual repulsive force between you and them, causing both players to move away from each other. keyTalk {m} Pressing this key will toggle between the talk window being shown below the HUD. If your mouse pointer is outside the window you will still have full control of your ship and pressing the talk key will disap- pear (the current mes- sage will not be lost). If you position your mouse pointer within the window you can type a message using the key- board, however you ship will no longer respond to key presses. The following special keys are available; Return Linefeed This finishes and sends the message. The talk window is also removed from the screen and the message text cleared. Backspace Del These keys delete the last character. Ctrl-W This deletes the last word. Ctrl-U This deletes the entire line of text. Esc This removes the 19 XPILOT talk window without clearing the text. This is useful if you are typing a message and some- thing important in the game happens that requires you to control your ship. Messages will usually be sent to every player logged in, including yourself. Messages received will always appear in the bottom of the Game area, and will look like; <> Hello world. However you can send messages to individual players or teams by starting the message with the player's name (or enough character from the beginning of their name to make it unique) or team number followed by a colon, and then the message. Just placing a colon at the start of the message will send it to every- one. For example; vip: Hello will send a message to only one player who's name begins the letters vip (the case does not matter). keyToggleCompass {y} Turns of the HUD compass display. keyLockClose {Select Up} Will lock onto the closest player if he/she is within range. 20 XPILOT keyLockNextClose {Down} Will lock onto the next closest player after the currently locked player. keyLockNext {Next Right} Will, if possible, lock onto the next player in the game. keyLockPrev {Prior Left} Will, if possible, lock onto the pre- vious player in the game. keyConnector {Control_L} Use connector (for the moment, all this is used for is picking up trea- sures/balls). keyDropBall {d} Drop the ball if you are carrying it. These keys let you adjust the control sensitivity: keyIncreasePower {KP_Multiply} Increase engine power. keyDecreasePower {KP_Divide} Decrease engine power. keyIncreaseTurnspeed {KP_Add} Increase turn speed. keyDecreaseTurnspeed {KP_Subtract} Decrease turn speed. keyToggleOwnedItems {o} Causes all owned bonus items to be shown either con- stantly or for a 21 XPILOT brief period after they change in amount on the HUD. keyToggleMessages {0} Causes messages to be shown or not shown. keyReprogram {quoteleft} Reprogram a modi- fier bank or lock bank. keyLoadLock1 {5} Load player lock from bank 1. keyLoadLock2 {6} Load player lock from bank 2. keyLoadLock3 {7} Load player lock from bank 3. keyLoadLock4 {8} Load player lock from bank 4. keyToggleRecord {KP_5}. Toggle recording of session to file (see the recordFile option). This recording can later be reviewed with the xp-replay() program keyPointerControl {KP_Enter} Toggle mouse pointer control. keySelectItem {KP_0 KP_Insert} Press repeatedly to select an item to drop. A small rectangle will be drawn around the item you can drop. Use the keyLoseItem key to actually drop the item. 22 XPILOT Note that you can- not select tanks to drop, tanks can only be released (see the keyTankDe- tach option). keyLoseItem {KP_Delete KP_Decimal} Drop the item selected with the keySelectItem key. The server can either delete the item or drop it back into the map depending upon the value of the loseItemDestroys option. Mouse control There are up to five mouse but- tons available to define as keys: pointerButton1 {keyFireShot} Define which keys are pressed when mouse button one is pressed. pointerButton2 {keyThrust} Define which keys are pressed when mouse button two is pressed. pointerButton3 {keyShield} Define which keys are pressed when mouse button three is pressed. pointerButton4 {} Define which keys are pressed when mouse button four is pressed. pointerButton5 {} Define which keys are pressed when 23 XPILOT mouse button five is pressed. X RESOURCES At startup xpilot will look for X resources in several places. First it looks in the LIBDIR (as defined during compilation, mostly as something like /usr/local/games/xpilot/lib/) for the file named XPilot. After that it looks for more resources in /usr/lib/X11/$LANG/app-defaults/XPilot, $XUSERFILESEARCH- PATH/XPilot, $XAPPLRESDIR/$LANG/XPilot, $HOME/app- defaults/$LANG/XPilot, resources set using xrdb or else $HOME/.Xdefaults, host specific resources in the file pointed to by $XENVIRONMENT or else in $HOME/.Xdefaults- hostname and finally in $HOME/.xpilotrc. If the LANG environment variable is undefined or if that file doesn't exist then it will look for the file as if LANG had been undefined. Resources defined in files listed later will override resources in files listed earlier. If the XPI- LOTRC environment variable is defined then its value is used instead of $HOME/.xpilotrc. All of these resources can be overridden by their corresponding command line arguments. name Nick name of your player. team Preferred team number. port Set the port number of the server. Almost all servers use the default port, which is the recommended policy. You can find out about which port is used by a server by querying the XPilot Meta server. power Primary power setting of your engine. Primary in this context means that it is part of the default setting, secondary means the other setting (two different settings are available, pressing Esc will switch between them). You may change "sensitivity" of your ship by adjusting these parameters. Often you would like one setting to be more "rough" than the other - one setting for fine maneuvering and one for racing. (Default 45.0) turnSpeed Primary turnspeed setting of your ship. (Default 30.0) turnResistance Primary turnresistance setting of your ship. This value determines how fast 24 XPILOT your ship will stop rotating, i.e. the rotating speed of your ship is set equal to itself multiplied by this value. Obviously the value has to lie between 0.0 (exclusive) and 1.0 (inclusive). (Default 0.12) altPower Secondary power setting of your engine. (Default 35.0) altTurnSpeed Secondary turnspeed setting of your ship. (Default 25.0) altTurnResistance Secondary turnresistance setting of your ship. (Default 0.12) shipShape Define the ship shape to use. Because the argument to this option is rather large (up to 500 bytes) the recommended way to set this option is in the .xpi- lotrc file in your home directory. The exact format is defined in the file README.ships in the XPilot distribution. Note that there is a nifty tool called editss for easy ship creation. See the XPilot FAQ for details. See also the shipShapeFile option. shipShapeFile An optional file where shipshapes can be stored. If this resource is defined and it refers to an existing file then ship- shapes can be referenced to by their name. For instance if you define ship- ShapeFile to be /home/myself/.shipshapes and this file contains one or more ship- shapes then you can select the shipshape by starting xpilot as: xpilot -shipShape myshipshapename Where "myshipshapename" should be the "name:" or "NM:" of one of the shipshapes defined in /home/myself/.shipshapes. Each shipshape definition should be defined on only one line. All characters up to the first left parenthesis are ignored. fuelNotify The limit when the HUD fuel bar will become visible. (Default 500.0) 25 XPILOT fuelWarning The limit when the HUD fuel bar will start flashing. (Default 200.0) fuelCritical The limit when the HUD fuel bar will flash faster. (Default 100.0) showHUD Should the HUD be on or off. (Default true) verticalHUDLine Should the vertical lines in the HUD be drawn. (Default false) horizontalHUDLine Should the horizontal lines in the HUD be drawn. (Default true) speedFactHUD Should the HUD me moved, to indicate the current velocity. Negativ values will inverse the moving of the HUD. (Default 0.0) speedFactPTR Uses a red line to indicate the current velocity. On edge of the line is the cen- ter of the ship. The other end is moved in the same way, as the HUD, if speed- FactPTR is set. charsPerSecond This determines the speed in which mes- sages are written, in characters per sec- ond. markingLights Should the fighters have marking lights, just like airplanes? sparkProb The chance that sparks are drawn or not. This gives a sparkling effect. Valid values are in the range [0.0-1.0] sparkSize Size of sparks in pixels. shotSize Size of shots in pixels. teamShotSize Size of team shots in pixels. Note that team shots are drawn in blue. showShipName Should all ships have the name of the 26 XPILOT player drawn below them. showMineName Should the name of the owner of the mine be drawn below the mine. showMessages Should messages appear on screen. showItems Should owned items be displayed perma- nently on the HUD, or only when their amount has changed? showItemsTime The time in seconds to display item information when it has changed and the showItems option is turned on. clock Display a small digital clock. clockAMPM Displays clock in 24hr or 12hr format. (Default: False) noLocalMotd Do not display the local Message Of The Day. autoServerMotdPopup Automatically popup the MOTD of the server on startup. toggleShield Have the shield status be changed only by a key press and ignore the key release. autoShield When this option is on then shields are lowered automatically when firing a weapon or dropping a mine. After the firing the shields are raised again too. shieldDrawSolid Are shields drawn in a solid line. Not setting a value for this option will select the best value automatically for your particular display system. fuelMeter Determines if the fuel meter should be visible. This meter visualizes your fuel level in a different way than fuelGauge does. fuelGauge Determines if the fuel gauge should be visible. See fuelMeter. 27 XPILOT turnSpeedMeter Should the turnspeed meter be visible at all times. (Default false) powerMeter Should the power meter be visible at all times. (Default false) backgroundPointDist Specifies the block distance between points drawn in the background, used in empty map regions. 8 is default, 0 means no points. backgroundPointSize Specifies the size of the background points. The default is 2, 0 means no points. titleFlip Should the title bar change or not. Some window managers like twm may have prob- lems with flipping title bars. Hence this option to turn it off. slidingRadar If the game is in edgewrap mode (see xpi- lots()) then the radar will keep your position on the radar in the center and draw the rest of the radar around it. This requires very good X performance and a pretty fast workstation. Default is off. outlineWorld Draws only the outline of all the blue map constructs. filledWorld Draws the walls solid. Needs a fast graphics system. texturedWalls Draws the walls filled with a texture pattern. See also the wallTextureFile option. Be warned that this needs a very fast graphics system. wallTextureFile Specify a XPM format pixmap file to load the wall texture from. texturePath Optional search path for XPM texture files. This is a list of one or more directories separated by colons. 28 XPILOT packetSizeMeter Turns on a meter displaying the maximum packet size of the last few seconds. packetLostMeter Turns on a meter displaying the percent- age of packets lost in the last second due to network failure (overload). packetDropMeter Turns on a meter displaying the percent- age of packets dropped due to your dis- play not being able to keep up with the rate at which the server is generating frame updates. If possible lower the frame update rate of the server with the -fps option. receiveWindowSize Specifies how big the receive window should be. See NOTES below. sounds Specifies the sound file. (Only if sound is enabled.) maxVolume Specifies the volume to play sounds with, where 0 turns off sound. (Only if sound is enabled.) audioServer Specifies the audio server to use. (Only if sound is enabled.) geometry Specifies the geometry to use like: -geometry 1280x1024+0+0. keyboard Set the X keyboard input if you want key- board input from another display. The default is to use the keyboard input from the X display. recordFile An optional file where a recording of a game can be made. If this file is unde- fined then recording isn't possible. See the keyToggleRecord option for how to make recordings. visual Specifies which visual to use. You can see which visuals your display supports by running: xpilot -visual list. mono Turns on mono display type. colorSwitch Tells xpilot to use a color switching 29 XPILOT display technique or not. Default is true if your display hardware has enough colors available. maxColors Tells xpilot how many colors you want it to use. Default is 4, with a maximum of 16. Valid values are 4, 8 and 16. targetRadarColor Which color number to use for drawing targets on the radar. Valid values all powers of 2 smaller than maxColors. hudColor Specifies which color index to use for drawing the HUD. The value for this option is a number ranging from 1 till the maxColors value. hudLockColor Specifies which color index to use for drawing the lock dot on the HUD. The value for this option is a number ranging from 1 till the maxColors value. wallColor Specifies which color index to use for drawing the walls. The value for this option is a number ranging from 1 till the maxColors value. sparkColors A list of color numbers to use for draw- ing sparks and debris of varying tempera- ture. gameFont The font used on the HUD and for nearly all text part of the game field. messageFont The font used for messages displayed in the bottom left corner of the game field. scoreListFont The font used on the score list. Must be non-proportional. buttonFont The font used on all buttons. textFont The font used in the help and about win- dows. talkFont The font used in the talk window. motdFont The font used in the MOTD window and in the key list window. This must be a non- proportional font. 30 XPILOT black Specifies the color to use for black. Default is #000000 which is equivalent to specifying Black. white Specifies the color to use for white. Default is #FFFFFF which is equivalent to specifying White. blue Specifies the color to use for blue. red Specifies the color to use for red. color0 Specifies the color to use for color 0. One can specify colors up to color15 this way. Black, white, blue and red are equivalent to color0, color1, color2 and color3 respectively. INVOCATION EXAMPLES The simplest invocation of the hand-shake program is to just type: xpilot This will force the program to search after a server on all the machines on your attached network. Say you know where the server is, and you don't want to be prompted (handy in scripts etc.), you may type for exam- ple: xpilot -join lglab08 where lglab08 is the name of the host running the server. In the examples above your name would be your login name. Let's say you want to be really cool and your login name is gudmari, well - you're in loads of trouble if you don't know about the -name option; xpilot -name FireEater will fix the problem for you. NOTES For credit list, see the provided CREDITS file. 31 XPILOT If the client crashes, you will be without autorepeat on your keyboard. To re-enable autorepeat, issue this com- mand: xset r Please also note that xpilot can be addictive, and stre- nous for both you and your keyboard. We take no responsi- bility. :) There is a meta server running on meta.xpilot.org, port 4400, into which all servers registers. This way you can easily check if there are any servers running nearby. To use it, try: telnet meta.xpilot.org 4400 help list Or: telnet meta.xpilot.org 4401 If you experience any problems with `jerkiness', you should try to adjust the receiveWindowSize Xresource. The problem may be that your X server can't display as fast as the XPilot server is generating new frame updates. So another option is setting the number of frames for the server to a lower number or get a faster X display system :) The receiveWindowSize resource allows you to tune the buffering of frame updates a little. When set to one then there is no buffering and xpilot will just read the next frame and display it. When the display is slower than the XPilot server this may give all sorts of problems like lagging behind and lack of keyboard control. When you set receiveWindowSize to two then xpilot will always try to read a second frame from the network and if this succeeds it will discard the oldest frame. A better number for receiveWindowSize is three which will discard the oldest frame out of three and therefore be less sub- ject to small changes in network delivery times. If your display is fast enough and can keep up with rate at which the server is generating frames then specifying a value bigger than one will not result in dropping frames, but rather will it be a buffer for small changes in network performance and computer load. The maximum value of receiveWindowSize is four. 32 XPILOT ENVIRONMENT If XPILOTRC is set then its value is used instead of $HOME/.xpilotrc to find the file containing the XPilot resources. XPILOTUSER and XPILOTHOST set the loginname and hostname as reported to the xpilots server. AUTHORS XPilot was developed by Bjrn Stabell and Ken Ronny Schouten from the Univer- sity of Troms, and Bert Gsbers from the University of Amsterdam. BUG REPORTS The product is seemingly stable, so bug reports are highly appreciated. Send email to xpilot@xpilot.org and we will see what we can do. We merely ask that you remember to include the following information: +o The platforms the bug occurs on +o What kind of display you have (depth, color, type) +o Which Xresources you're using. +o The full version of XPilot, i.e., 3.6.1 +o What the bug looks like (symptoms) +o When the bug usually occurs We would also like to receive changes you do to make the code compile on your machine (we would NOT like to receive the whole program translated to K&R C, keep it ANSI :) If you don't have an ANSI compiler, there are several utili- ties which may help you de-ANSI-fy the code (unproto, unprotoize etc), but a better solution will be to install the GNU C compiler on your system. COPYRIGHT & DISCLAIMER XPilot is Copyright 1991-96 by Bjrn Stabell, Ken Ronny Schouten & Bert Gijsbers. XPilot comes with ABSOLUTELY NO WARRANTY; for details see the provided LICENSE file. FILES /usr/lib/X11/motd Message of the day. /usr/lib/X11/sounds File containing the sound to sound-file map- ping. 33 XPILOT SEE ALSO xpilots(), xp-replay() 34